home *** CD-ROM | disk | FTP | other *** search
/ HamCall (October 1991) / HamCall (Whitehall Publishing)(1991).bin / bcast / bcstcble / smithcht.bas < prev    next >
BASIC Source File  |  1990-10-14  |  11KB  |  261 lines

  1. 2     GOSUB 10000: PRINT CL$
  2. 10    INPUT "What is the characteristic impedance in ohms ";Z0
  3. 12    INPUT "How many Frequencies (1-10) ";N: PRINT
  4. 14    IF N<1 OR N>10 THEN 12
  5. 16    FOR J =1 TO N
  6. 18    PRINT "Input Frequency"J;:INPUT "In MHz.";F(J)
  7. 20    PRINT "INPUT RS, XS, OF LOAD AT ";:PRINT USING " ###.##";F(J);:PRINT " MHZ";: INPUT R(J),I(J)
  8. 22    X(J)=R(J):Y(J)=I(J):NEXT J: CLS:PRINT
  9. 24    PRINT"     These were your load impedance inputs:":PRINT
  10. 26    PRINT"     Freq (MHZ)        RS(Ohms)        XS(Ohms)  ":PRINT: FOR J=1 TO N
  11. 28    PRINT USING "    #####.###";F(J);:PRINT USING "            #####.###";R(J);
  12. 30    PRINT USING "         #####.###";I(J):NEXT J
  13. 31    LOCATE 18
  14. 32    LOCATE 18:INPUT "Are you satisfied (Y/N) ?";A$
  15. 34    IF A$<>"Y" AND A$<>"y" THEN GOTO 12
  16. 38    INPUT"print load values on printer (Y/N)";A$
  17. 40    IF A$="Y" OR A$="y" THEN GOSUB 12000
  18. 42    IF GR=2 THEN INPUT "Plot Load Impedance (Y/N)";P$
  19. 44    IF P$="Y" OR P$="y" THEN CLS:GOSUB 8000
  20. 50    PRINT CL$"    Choose type of Matching Section";DN$DN$
  21. 52    PRINT" 1 Series C
  22. 54    PRINT" 2 Series L
  23. 56    PRINT" 3 Series Tuned (Series L-C)
  24. 58    PRINT" 4 Series Tuned (Parallel L-C)
  25. 60    PRINT" 5 Series Transmission Line
  26. 62    PRINT" 6 Shunt  C
  27. 64    PRINT" 7 Shunt  L
  28. 66    PRINT" 8 Shunt  Tuned (Series L-C)
  29. 68    PRINT" 9 Shunt  Tuned (Parallel L-C)
  30. 70    PRINT"10 Shunt  Transmission Line
  31. 72    PRINT"11 Transformer
  32. 74    PRINT"12 Series R
  33. 76    PRINT"13 Shunt  R
  34. 78    PRINT DN$"14 Stop Adding Sections"
  35. 80    PRINT DN$"15 Calculate Mode (L-C-Line Values)"
  36. 85    PRINT "16 Exit Program"DN$
  37. 90    INPUT "Select your choice (1-16)";M
  38. 92    IF M<1 OR M>16 THEN 90
  39. 94    ON M GOTO 1000,1500,2000,2500,3000,3500,4000,4500,5000,5500
  40. 96    ON (M-10) GOTO 6000,6500,7000,9000,9500,12100
  41. 1000  PRINT CL$;"Add Series Capacitor
  42. 1003  INPUT "What is the value (in PF)";C
  43. 1010  FOR J=1 TO N
  44. 1015  X(J)=R(J)
  45. 1020  Y(J)=I(J)-1/(2*PI*F(J)*C*.000001)
  46. 1025  NEXT J: GOTO 9000
  47. 1500  PRINT CL$;
  48. 1502  INPUT "What is Value (uH) ";L
  49. 1510  FOR J = 1 TO N: X(J)=R(J)
  50. 1520  Y(J)=I(J)+2*PI*F(J)*L: NEXT J: GOTO 9000
  51. 2000  PRINT CL$;"Add Series Tuned (Series L-C)
  52. 2002  INPUT "Enter value of C (in Pf.) ";C
  53. 2004  INPUT "Enter value of L (in Uh.) ";L
  54. 2010  FOR J=1 TO N:  X(J)=R(J)
  55. 2020  Y(J)=I(J)+2*PI*F(J)*L-1/(2*PI*F(J)*C*.000001):NEXT J: GOTO 9000
  56. 2500  PRINT CL$;"Add Series Tuned (Parallel L-C)
  57. 2502  INPUT "Enter value of C (in Pf.) ";C
  58. 2504  INPUT "Enter value of L (in Uh.) ";L
  59. 2510  FOR J=1 TO N: X(J)=R(J)
  60. 2520  Y(J)=I(J)+(2*PI*F(J)*L)/(1-((2*PI*F(J))^2)*L*C*.000001):NEXT J: GOTO 9000
  61. 3000  PRINT CL$; "Add Series Transmission Line"
  62. 3002  INPUT "What is line Impedance (ohms)" ;Z1
  63. 3004  INPUT "What is the velocity factor ";V
  64. 3006  INPUT "What is length (inches) ";LL
  65. 3010  FOR J= 1 TO N
  66. 3015  T=1.2*LL*F(J)/39.37/V
  67. 3020  D= (R(J)+Z1)^2+I(J)^2
  68. 3025  R = (R(J)^2-Z1^2+I(J)^2)/D
  69. 3030  I=2*Z1*I(J)/D
  70. 3035  Z=SQR(R*R+I*I)
  71. 3040  T=180/PI*ATN(I/(R+1E-30))-2*T+180*(R<0)
  72. 3045  R=Z*COS(T*PI/180)
  73. 3050  I=Z*SIN(T*PI/180)
  74. 3055  D=(I-R)^2+I^2
  75. 3060  X(J)=Z1*(I-R^2-I^2)/D
  76. 3065  Y(J)=2*Z1*I/D
  77. 3070  NEXT J:GOTO 9000
  78. 3500  PRINT CL$; "Add Shunt Capacitor
  79. 3502  INPUT "What is the value of C (in Pf.) ";C
  80. 3506  FOR J=1 TO N: W=2*PI*C*.000001
  81. 3508  D=(1-W*F(J)*I(J)^2+R(J)*W*F(J))^2
  82. 3510  X(J)=R(J)/D
  83. 3512  Y(J)=(I(J)*(1-W*F(J)*I(J))-R(J)^2*W*F(J))/D:NEXT J: GOTO 9000
  84. 4000  PRINT CL$;"Add Shunt Inductor
  85. 4002  INPUT "What is the value of L (in Uh) ";L
  86. 4015  FOR J=1 TO N: W=2*PI*F(J)*L
  87. 4025  D=R(J)^2+(I(J)+W)^2
  88. 4030  X(J)=R(J)*W^2/D
  89. 4035  Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
  90. 4040  NEXT J: GOTO 9000
  91. 4500  PRINT CL$;"Add SHunt Tuned (Series (L-C)
  92. 4502  INPUT "Enter value of C (in Pf.) ";C
  93. 4504  INPUT "Enter value of L (in Uh.) ";L
  94. 4510  FOR J=1 TO N
  95. 4515  W=2*PI*F(J)*L-(1000000!)/(2*PI*F(J)*C)
  96. 4517  D=R(J)^2+(I(J)+W)^2
  97. 4520  X(J)=R(J)*W^2/D
  98. 4525  Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
  99. 4530  NEXT J: GOTO 9000
  100. 5000  PRINT CL$;"Add Shunt Tuned (Parallel L-C)
  101. 5002  INPUT "Enter value of C (in Pf.) ";C
  102. 5004  INPUT "Enter value of L (in Uh.) ";L
  103. 5010  FOR J=1 TO N
  104. 5015  W=(2*PI*F(J)*L)/(1-((2*PI*F(J))^2)*L*C*.000001)
  105. 5020  D=R(J)^2+(I(J)+W)^2
  106. 5025  X(J)=R(J)*W^2/D
  107. 5030  Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
  108. 5035  NEXT J: GOTO 9000
  109. 5502  INPUT "What is line impedance (ohms) ";Z1
  110. 5504  INPUT "What is the velocity factor ";V
  111. 5506  INPUT "What is the length (inches) ";LL
  112. 5507  LOCATE 4,40
  113. 5508  PRINT "Open (O) or Shorted (S) Stub ";
  114. 5510  INPUT S$
  115. 5512  IF S$="s" THEN S$="S"
  116. 5514  IF S$="o" THEN S$="O"
  117. 5516  IF S$ <>"O" AND S$<>"S" THEN 5510
  118. 5520  FOR J = 1 TO N
  119. 5525  T=LL*F(J)*1.2/39.37/V
  120. 5530  IF S$="S" THEN W=Z1*TAN(T*PI/180)
  121. 5535  IF S$="O" THEN W=Z1*TAN((T+90)*PI/180)
  122. 5540  D=R(J)^2+(I(J)+W)^2
  123. 5545  X(J)=R(J)*W^2/D
  124. 5550  Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
  125. 5555  NEXT J: GOTO 9000
  126. 6000  PRINT CL$;"Add Transformer
  127. 6002  INPUT "Step Up or Down (U or D) ";T$
  128. 6004  IF T$<> "U" AND T$<>"u" AND T$ <>"D" AND T$ <>"d" THEN 6000
  129. 6006  INPUT "What transformer ratio "; W
  130. 6010  IF T$="D" OR T$ ="d" THEN W=1/W
  131. 6020  FOR J= 1 TO N:X(J)=W*R(J)
  132. 6025  Y(J)=W*I(J): NEXT J: GOTO 9000
  133. 6500  PRINT CL$; "Add Series Resistor
  134. 6502  INPUT "What value of R ";RS
  135. 6506  FOR J= 1 TO N: X(J) = R(J) +RS
  136. 6508  Y(J)=I(J):NEXT J: GOTO 9000
  137. 7000  PRINT CL$; "Add shunt resistor
  138. 7002  INPUT "What value is resistor ";RS
  139. 7004  FOR J = 1 TO N
  140. 7006  D=R(J)+RS^2+I(J)^2
  141. 7008  X(J)=RS*(R(J)^2+RS*R(J)+I(J)^2)/D
  142. 7010  Y(J)=I(J)*RS^2/D: NEXT J : GOTO 9000
  143. 7500  CLS: INPUT "Want to Run another One ";A$
  144. 7502  IF LEFT$ (A$,1)="Y" OR LEFT$(A$,1) = "y" THEN CLS: RUN
  145. 7504  LOCATE 12,34: PRINT "Good Bye !"DN$DN$DN$DN$DN$DN$:END
  146. 8000  GET (0,0)-(639,35),TEXT#:CLS
  147. 8005  IF X=4 THEN PUT (80,9),BLANK#:GOTO 8020
  148. 8010  PUT (80,9),FULL#
  149. 8020  FOR J= 1 TO N
  150. 8025  D=(X(J)+Z0)^2+Y(J)^2
  151. 8030  PX(J)=((X(J)-Z0)*(X(J)+Z0)+Y(J)^2)/D*217
  152. 8035  PY(J)=-2*Y(J)*Z0/D*90
  153. 8040  PSET (PX(J)+320,PY(J)+100):DRAW PT$
  154. 8050  IF D$="S" AND J>1 THEN LINE (320+PX(J-1),100+PY(J-1))-(320+PX(J),100+PY(J))
  155. 8060  NEXT J
  156. 8070  PRINT "<Prt SCRN> for Screen Dump to Printer or Any Key To Continue .."
  157. 8075  FOR J = 1 TO 20E3: NEXT J: LOCATE 1:PRINT SPACE$(79)
  158. 8080  I$ = INKEY$: IF I$= "" THEN 8080
  159. 8100  GET (80,9)-(560,191),FULL#
  160. 8110  CLS: PUT (0,0),TEXT#:RETURN
  161. 8300  LOCATE 18: FOR J = 1 TO 6: PRINT SPACE$(79): NEXT J
  162. 8305  LOCATE 21,1:INPUT "What Value of VSWR circle do you want to plot ";VS
  163. 8310  IF VS<1 THEN 8305
  164. 8315  GET (0,0)-(639,35),TEXT#:CLS
  165. 8320  PUT (80,9),FULL#
  166. 8325  VR=217*(VS-1)/(VS+1)
  167. 8330  CIRCLE (320,100),VR
  168. 8340  GOTO 8070
  169. 9000  CLS: LOCATE 6:PRINT "     FREQ (MHZ)         R$ (OHMS)         XS(OHMS)"DN$
  170. 9005  FOR J = 1 TO N
  171. 9010  PRINT USING   "   #####.###";F(J);:PRINT USING"         #####.###";X(J);
  172. 9015  PRINT USING   "          #####.###";Y(J):NEXT J
  173. 9050  LOCATE 18
  174. 9055  PRINT "1 --> Good Value:  Keep & Proceed
  175. 9060  PRINT "2 --> Print Latest Iteration and Values on Printer
  176. 9065  PRINT "3 --> Bad Value:  Discard and try a new circuit
  177. 9070  IF GR=1 THEN 9100
  178. 9075  PRINT "4 --> Plot on Clean Chart
  179. 9080  PRINT "5 --> Plot on Last Chart
  180. 9085  PRINT "6 --> Plot Constant VSWR Circles
  181. 9100  INPUT X
  182. 9110  IF X=1 THEN 9200
  183. 9120  IF X=2 THEN GOSUB 12000: GOTO 9050
  184. 9130  IF X=3 THEN 50
  185. 9140  IF X=4 AND GR=2 THEN GOSUB 8000: GOTO 9000
  186. 9150  IF X=5 AND GR=2 THEN GOSUB 8000: GOTO 9000
  187. 9160  IF X=6 AND GR=2 THEN GOSUB 8300: GOTO 9000
  188. 9170  GOTO 9100
  189. 9200  FOR J=1 TO N: R(J)=X(J)
  190. 9210  I(J)=Y(J): NEXT J
  191. 9215  LOCATE 18: FOR J=1 TO 6: PRINT SPACE$(79): NEXT J
  192. 9225  LOCATE 18:PRINT "You must now match the impedances listed above. ";
  193. 9230  FOR J = 1 TO 1500: NEXT J: GOTO 50
  194. 9462  REM : LEN=WL*EL/360*V:LEN=INT(100*LEN+.5)/100
  195. 9500  PRINT CL$"Do you wish to calculate (1) L-C Values
  196. 9502  PRINT DN$"                      or (2) Line Lengths"DN$
  197. 9504  INPUT "What is Your Choice (1 or 2) ";CH
  198. 9506  IF CH<>1 AND CH <>2 THEN 9504
  199. 9508  ON CH GOTO 9520,9550
  200. 9520  PRINT DN$DN$:INPUT "Enter Operating Frequency (MHz) ";OF
  201. 9522  INPUT "Enter Desired Reactance (Ohms) ";DX
  202. 9524  IF DX=0 THEN 9522
  203. 9526  IF DX<0 THEN DX=-DX
  204. 9528  IND=DX/(2*PI*OF)
  205. 9530  CAP=1000000!/(2*PI*DX*OF)
  206. 9532  PRINT DN$"Use Inductance of ";ND; "uH";
  207. 9534  PRINT "or Capacitance of ";CAP;" pf
  208. 9536  PRINT "for reactance of ";DX;" Ohms at ";OF;" Mhz.
  209. 9538  GOTO 9590
  210. 9550  PRINT DN$DN$:INPUT "Enter Operating Frequency (Mhz.) ";OF
  211. 9552  INPUT "Velocity Factory of transmission line ";V
  212. 9554  INPUT "Enter Electrical Length desired in degrees (1-360) ";EL
  213. 9556  IF EL<0 OR EL > 360 THEN 9554
  214. 9558  WL=300*39.37/OF
  215. 9560  PRINT DN$"One Wavelength in air = ";WL;" inches at ";OF;" Mhz.
  216. 9562  LI=INT(100*WL*EL/360*V+.5)/100
  217. 9564  PRINT DN$;EL;"Degrees with velocity factor of ";V" = "LI"Inches
  218. 9590  PRINT DN$DN$"Press any key to return to Matching Network Menu"
  219. 9592  I$=INKEY$: IF I$ = "" THEN 9592
  220. 9594  GOTO 50
  221. 10000 PI=3.151593:CL$=CHR$(12):DN$=CHR$(31):PT$="U2D4U2R4L8R4E1G2E1H1F2H1"
  222. 10002 PRINT CL$DN$," Impedance Matching Program with Smith Chart Display
  223. 10004 PRINT DN$"                           For the IBM PC or Compatibles
  224. 10006 PRINT
  225. 10010 PRINT
  226. 10020 PRINT "Select your Hardware Configuration from this list :"
  227. 10022 PRINT :PRINT "    1 --> Text Only
  228. 10024 PRINT :PRINT "    2 --> IBM Color/Graphics Emulation
  229. 10026 PRINT "           (You can plot graphics from Basic"
  230. 10030 INPUT GR
  231. 10032 IF GR<>1 AND GR<>2 THEN 10030
  232. 10038 IF GR=1 THEN RETURN
  233. 10100 SCREEN 2:CLS:PRINT "Hold While I draw the Chart."
  234. 10104 CIRCLE (320,100),217
  235. 10106 LINE (103,100)-(537,100)
  236. 10108 CIRCLE (537,10),217,,PI,1.45*PI
  237. 10110 CIRCLE (537,190),217,,.55*PI,PI
  238. 10112 CIRCLE (429,100),109
  239. 10114 LOCATE 13,12: PRINT "0"
  240. 10116 LOCATE 13,69:PRINT "oo":PSET (550,100):PSET(551,100)
  241. 10118 LOCATE 5,18:PRINT" .4":LOCATE 22,18: PRINT "-.4"
  242. 10120 A=175:B=248:C=392:D=465
  243. 10122 FOR J=98 TO 102: PSET (A,J):PSET (B,J):PSET (C,J): PSET (D,J):NEXT J
  244. 10124 LOCATE 14,22: PRINT " .2"
  245. 10126 LOCATE 14,31: PRINT " .5"
  246. 10128 LOCATE 14,41: PRINT "1"
  247. 10130 LOCATE 14,50: PRINT "2
  248. 10132 LOCATE 14,59: PRINT "5"
  249. 10134 CIRCLE (537,325),544,,.626*PI,.742*PI
  250. 10136 CIRCLE (527,-125),544,,1.258*PI,1.374*PI
  251. 10140 DIM BLANK#(1500),FULL#(1500),TEXT#(400)
  252. 10142 GET (80,9)-(560,191),BLANK#:GET (80,9)-(560,191),FULL#:CLS
  253. 10202 PRINT "To enable capability of graphic screen dump to printer using the
  254. 10204 PRINT "<Print Scrn> command, you must run the appropriate hi-res screen
  255. 10206 PRINT "dump utility f
  256. 11000 end
  257. 11010 ' FROM TBS BBS #404/320-6202 WITH
  258. 11020 ' PERMISSION
  259. 11030 ' VOICE PHONE 404/321-1600
  260. 11031 ' SYSOP THERE IS BILL TONNESON
  261.